In coralseed, coral settlement is determined by a)
larval competency and b) probability of settlement in any given habitat.
As outlined in the theory section, different habitats with have
different settlement probabilities based on habitat type matching larval
settlment in experimental assays: reef slopes will have high probability
of settlement, inner reef flats lower probability. As
coralseed uses the Allen coral atlas polygons, if
p = 1 for settlement, then a larvae has to settle
somewhere in the habitat.
To determine where larvae settle in a given polygon,
coralseed uses three different approaches to determining
spatial patterns of settlement:
assumes a larvae will settle somewhere in a habitat if p=1
(i.e. coralseed generates a random sample along the
particle track within the habitat).
library(coralseed)
library(ggplot2)
library(tidyverse)
library(sf)
library(tmap)
seascape <- seascape_probability(reefoutline=reef_map, habitat=benthic_map)
particles <- seed_particles(example="mermaid", seascape=seascape, probability="additive",
limit_time=3, competency.function = "exponential", set.seed=1,
simulate.mortality = "none", simulate.mortality.n = 0.1,
return.plot=FALSE, silent=TRUE)
settlers <- settle_particles(particles, probability="additive", set.seed=1, sample.n=10, silent=TRUE)
particles <- particles |> filter(id %in% settlers$points$id)
map_coralseed(seed_particles=particles, settle_particles=settlers,
seascape_probability=seascape, restoration.plot=c(100,100),
show.tracks = TRUE)
assumes a larvae will settle immediately in a habitat if p=1
(i.e. coralseed takes the first time-step along the
particle track within the habitat).
Note this produces ecologically unrealistic settlement patterns along the border of polygons and should be used only for testing purposes (see below).
settlers <- settle_particles(particles, probability="rapid", set.seed=1, sample.n=10, silent=TRUE)
map_coralseed(seed_particles=particles, settle_particles=settlers,
seascape_probability=seascape, restoration.plot=c(100,100),
show.tracks = TRUE)
assumes a larvae will settle within the first ten minutes in a
habitat if p=1 (i.e. coralseed takes the first ten
minutes and samples randomly along each particle track within the
habitat).
settlers <- settle_particles(particles, probability="lagged", set.seed=1, sample.n=10, silent=TRUE)
map_coralseed(seed_particles=particles, settle_particles=settlers,
seascape_probability=seascape, restoration.plot=c(100,100),
show.tracks = TRUE)
The lagged and additive sampling processes
will produce different results depending on the size of the polygon and
the speed the particle passes through: if particles pass through
habitats within 10 minutes, they will produce largely similar results.
If polygons are large or current speed slow, then additive settlement
will produce more spatially dispersed patterns while lagged will produce
clusters closer to the edges of borders.
In practice, while the settlement algorithms produce different fine-scale patterns of settlement at the scale of metres, this is largely aesthetic in most model simulations and does not impact the larger scale (i.e. 10-100’s meter or within habitat/polygon scales).
Note: coralseed doesn’t account for two
processes currently that will be addressed in future versions:
Larval “attraction”: chemical cues from habitats with positive settlement cues may cause larvae to selectively swim for settlement (see Dixson et al 2014). In practice this is hard to code as i) particle tracks are hard-wired, and while spatial buffers can be used to identify habitats within a given distance, forcing settlement if p=1 is difficult using anything other than the rapid algorithm which produces unrealistic results, ii) while lab experiments demonstrate substrate electivity, the capacity of larvae to physically swim against currents at ecologically relevant scales is debatable (see Hata et al 2017), and iii) the only paper attempting to validate this in field settings (Dixson et al 2014) has since been retracted.
Benthic boundary layers: coralseed assumes larvae
are free flowing in currents and doesn’t account for “sticky” benthic
boundary conditions. A dev version of coralseed slows down
larvae by 3-fold when p=1 and larvae pass across reef
substrates to simulate “searching” behaviour, but this has so far i)
been difficult to implement and ii) difficult to parameterise with
anything other than guestimates.